AWS CLIでサービスの各種コマンドを動かしてみる(IAM編4: アカウント・パスワード・アクセスキー)
不定期と言いながら連投しまくりで申し訳ありませんw m(_ _)m (書き溜めていたものでもあったので、このタイミングで一挙放出しとります)
IAM編第4弾はアカウントやパスワード、アクセスキーに関するコマンドです。
アカウントエイリアス(acount-alias)に関する操作
管理コンソール上で言うと、ちょうとこの部分の別名(エイリアス)を生成するコマンドになります。利用開始直後は数字の羅列となっているこの部分を、分かり易い別名にする操作ですね。
create-account-alias
アカウントエイリアスを作成します。実行してみましょう。
$ aws iam create-account-alias --account-alias aws-alias-login
実行後管理コンソールで内容を確認してみます。更新されていますね。
list-account-aliases
AWSアカウントに紐付くエイリアスの一覧を取得します。
$ aws iam list-account-aliases [ "aws-alias-login" ]
delete-account-alias
アカウントエイリアス情報を削除します。この操作を行うと、create-account-aliasを行う前の状態に戻る形となります。
$ aws iam delete-account-alias --account-alias aws-alias-login
アカウントサマリ(acount-summary)に関する操作
get-account-summary
アカウントエンティティに関する利用状況とIAMに関する各種情報の設定可能件数を取得します。各種項目値に関しては下記APIリファレンスを参照。
$ aws iam get-account-summary { "SummaryMap": { "AccessKeysPerUserQuota": 2, "AssumeRolePolicySizeQuota": 2048, "UsersQuota": 5000, "GroupsPerUserQuota": 10, "Users": 8, "Roles": 4, "MFADevices": 0, "InstanceProfilesQuota": 100, "AccountMFAEnabled": 0, "ServerCertificates": 0, "UserPolicySizeQuota": 2048, "RolePolicySizeQuota": 10240, "MFADevicesInUse": 0, "GroupsQuota": 100, "Groups": 8, "InstanceProfiles": 5, "GroupPolicySizeQuota": 5120, "SigningCertificatesPerUserQuota": 2, "ServerCertificatesQuota": 10, "RolesQuota": 250 }, "ResponseMetadata": { "RequestId": "a4a0d146-e53b-11e2-a0fa-2ba949bc0794" } }
パスワード(password)に関する操作
change-password
これを実行する事で"IAMユーザー"のパスワードを変更します。ルートアカウントパスワードはこのアクションによって影響を受ける事はありません。
...とコマンドヘルプを読む限り書いてあるのですが、所定のIAMユーザーを示すオプションが無いっぽい?
$ aws iam change-password -- --color --endpoint-url --no-paginate --old-password --profile --version --debug --new-password --no-verify-ssl --output --region
用法的には以下のような感じになるのでしょうが、動作検証はしておりませんw
$ aws iam change-password --old-password xxxxxx --new-password yyyyyy
パスワードポリシー(password-policy)に関する操作
管理コンソール:IAMのダッシュボードから[Security Status]欄にある[Password Policy]の編集画面に進むことで変更出来る要素群です。パスワードを作成する時に定める生成ルールを取り扱います。
get-account-password-policy
現在のアカウントパスワードポリシー情報を取得します。
$ aws iam get-account-password-policy { "ResponseMetadata": { "RequestId": "32b198c9-e545-11e2-ba36-0f251103ce0b" }, "PasswordPolicy": { "RequireNumbers": false, "RequireLowercaseCharacters": false, "RequireUppercaseCharacters": false, "MinimumPasswordLength": 6, "AllowUsersToChangePassword": false, "RequireSymbols": false } }
update-account-password-policy
IAM パスワードポリシーの管理 - AWS Identity and Access Management
パスワードポリシーに関する設定項目を単一、または復数に更新可能なこのコマンド、書式は以下のような感じになっております。また『minimum-password-length』以外は真偽値(boolean)を渡すようにあるのですが...
$ aws iam update-account-password-policy \n --allow-users-to-change-password "true" \n --require-lowercase-characters "true" \n --require-uppercase-characters "true" \n --minimum-password-length 10 \n --require-numbers "true" --require-symbols "true"
該当しそうな値は軒並み『そんなオプション知らんがな』と言われてしまいます...(´・ω・)
$ aws iam update-account-password-policy --require-uppercase-characters true Unknown options: ['true'] $ aws iam update-account-password-policy --require-uppercase-characters TRUE Unknown options: ['TRUE'] $ aws iam update-account-password-policy --require-uppercase-characters 'true' Unknown options: ['true'] $ aws iam update-account-password-policy --require-uppercase-characters 'TRUE' Unknown options: ['TRUE'] $ aws iam update-account-password-policy --require-uppercase-characters yes Unknown options: ['yes'] $ aws iam update-account-password-policy --require-uppercase-characters 1 Unknown options: ['1'] $ aws iam update-account-password-policy --require-uppercase-characters "1" Unknown options: ['1'] $ aws iam update-account-password-policy --require-uppercase-characters True Unknown options: ['True']
5ヶ月前のこのissueでは対応した、となっている模様。
と思ったら最近また似たような事象でissueにて言及している人が。(およそ6月末頃?)
boolean値に関する問題については、しばらく前に対応したけど、直ってないとかいうステータスなのでしょうかねぇ...
delete-account-password-policy
アカウントパスワードポリシーを削除します。
上記更新系のメソッドが動かない?ので、まずは管理コンソールで値を設定してみるところから。
そして削除。こちらの要素も、削除を行うと設定前の状態(デフォルト初期値)に戻るようです。
$ aws iam delete-account-password-policy
アクセスキー(access-key)に関する操作
create-access-key
所定ユーザーのアクセスキーを作成します。
$ aws iam create-user --user-name iam-ack-user $ aws iam create-access-key --user-name iam-ack-user { "AccessKey": { "UserName": "iam-ack-user", "Status": "Active", "CreateDate": "2013-07-05T13:05:51.141Z", "SecretAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "AccessKeyId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }, "ResponseMetadata": { "RequestId": "9dfadfe3-e573-11e2-8a03-a9df50e5b4b7" } }
list-access-keys
特定ユーザーに関連したアクセスキーIDの情報を返します。
--user-name パラメータを指定していない場合は実行時のアカウントに紐付くキー情報、--user-name パラメータを指定した場合はその指定ユーザのキー情報を返すようです。
$ aws iam list-access-keys --user-name iam-ack-user [ { "UserName": "iam-ack-user", "Status": "Active", "CreateDate": "2013-07-05T13:05:51Z", "AccessKeyId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" } ]
update-access-key
特定アクセスキーのステータスをActiveからInactiveへ、またはその逆へ変更します。このアクションはアクセスキーのローテーション活動の一環として行われる事を想定しているようです。
$ aws iam update-access-key --user-name iam-ack-user --access-key-id XXXXXXXXXXXXXXXXX --status Inactive $ aws iam list-access-keys --user-name iam-ack-user | jq '.[].UserName, .[].Status, .[].AccessKeyId' "iam-ack-user" "Inactive" "XXXXXXXXXXXXXXXXX" $ aws iam update-access-key --user-name iam-ack-user --access-key-id XXXXXXXXXXXXXXXXX --status Active $ aws iam list-access-keys --user-name iam-ack-user | jq '.[].UserName, .[].Status, .[].AccessKeyId'e "iam-ack-user" "Active" "XXXXXXXXXXXXXXXXX"
delete-access-key
所定のアクセスキーを削除します。
$ aws iam delete-access-key --user-name iam-ack-user --access-key-id XXXXXXXXXXXXXXXXX $ aws iam list-access-keys --user-name iam-ack-user | jq length 0